package com.powergame.console;

import com.powergame.exceptions.PowerGameException;
import com.powergame.main.PowerGame2DMain;
import com.powergame.model.Joueur;
import com.powergame.model.Ordre;
import de.lessvoid.nifty.controls.ConsoleCommands.ConsoleCommand;

/**
 * ExecuteOrdreCommand.java
 *
 * Modélise la commande qui execute un ordre ou une liste d'ordre
 *
 * @author ToF
 */
public class ExecuteOrdreCommand implements ConsoleCommand {
    
    private PowerGame2DMain application = null;
    
    private Thread execution = null;
    
    public ExecuteOrdreCommand(PowerGame2DMain application){
        this.application = application;
    }

    public void execute(String[] args) {
        
        Joueur joueur = application.getJeu().getJoueurCourant();
        
        if(joueur == null){
            application.output("ERREUR: Pas de joueur");
            
        }else{
            if(args.length == 2){
                int no = Integer.parseInt(args[1]);
                Ordre ordre = joueur.getOrdres(no);
                
                execution = new Thread(ordre, "ExecuteOrdreCommand");
                execution.start();
                
            }else{
                // Exectute toute la fiche
                joueur.getOrdres().execute();
            }
        }
        
        application.updateHUD();
    }
}
